Scheduling downloads based on metadata in a client-server topology

ABSTRACT

A method, a computer program product, and a computer system for scheduling downloads based on metadata in a client-server topology. A server receives from a client application a request for scheduling a download of a file, wherein the request for scheduling the download of the file comprises a requirement of a time period for downloading the file. The server fetches information from one or more metadata sources. The server determines an optimal time for downloading the file, based on the requirement of the time period and information from one or more metadata sources. The server sends a response with the optimal time and information for downloading the file. The server receives from the client a request for downloading the file at the optimal time. The server serves, at the optimal time, the file to the client application.

BACKGROUND

The present invention relates generally to downloading files fromservers, and more particularly to scheduling downloads based on metadatain a client-server topology.

Currently, there is no mechanism for scheduling future downloads basedon a combination of client requirements and costs. A download scheduleis either defined wholly by a client or a server, and there is nomediation that occurs between the parties; this results in less optimalscheduling downloads. However, there are a range of possible optionsthat fulfil needs of the client but have different cost/benefit ratiosto the service provider.

Download schedulers are used in peer-to-peer (P2P) file sharing, whichis the distribution and sharing of digital media using peer-to-peer(P2P) networking technology. There exist methodologies for schedulingdownloads in peer-to-peer topologies; however, the methodologies are nottranslatable to a client-server architecture. Forward caching ofresources is a different method to reduce server load in times of hightraffic. Forward caching of resources reduces server load by offloadingas opposed to smoothing the usage across a wider time period, and it ismore geared towards immediacy and accidental denial of service asopposed to lowering the strain across servers over protracted periods oftime.

SUMMARY

In one aspect, a method for scheduling downloads based on metadata in aclient-server topology is provided. The method includes receiving from aclient application, by a server, a request for scheduling a download ofa file, wherein the request for scheduling the download of the filecomprises a requirement of a time period for downloading the file. Themethod further includes fetching, by the server, information from one ormore metadata sources, wherein the information is relevant to therequest for scheduling the download of the file. The method furtherincludes determining, by the server, an optimal time for downloading thefile, based on the requirement of the time period and information fromone or more metadata sources. The method further includes sending to theclient application, by the server, a response with the optimal time andinformation for downloading the file. The method further includesreceiving from the client, by the server, a request for downloading thefile at the optimal time. The method further includes serving, by theserver, at the optimal time, the file to the client application.

In another aspect, a computer program product for scheduling downloadsbased on metadata in a client-server topology is provided. The computerprogram product comprises a computer readable storage medium havingprogram code embodied therewith. The program code is executable toreceive from a client application, by a server, a request for schedulinga download of a file, wherein the request for scheduling the download ofthe file comprises a requirement of a time period for downloading thefile. The program code is executable to fetch, by the server,information from one or more metadata sources, wherein the informationis relevant to the request for scheduling the download of the file. Theprogram code is executable to determine, by the server, an optimal timefor downloading the file, based on the requirement of the time periodand information from one or more metadata sources. The program code isexecutable to send to the client application, by the server, a responsewith the optimal time and information for downloading the file. Theprogram code is executable to receive from the client, by the server, arequest for downloading the file at the optimal time. The program codeis executable to serve, by the server, at the optimal time, the file tothe client application.

In yet another aspect, a computer system for scheduling downloads basedon metadata in a client-server topology is provided. The computer systemcomprises one or more processors, one or more computer readable tangiblestorage devices, and program instructions stored on at least one of theone or more computer readable tangible storage devices for execution byat least one of the one or more processors. The program instructions areexecutable to: receive from a client application, by a server, a requestfor scheduling a download of a file, wherein the request for schedulingthe download of the file comprises a requirement of a time period fordownloading the file; fetch, by the server, information from one or moremetadata sources, wherein the information is relevant to the request forscheduling the download of the file; determine, by the server, anoptimal time for downloading the file, based on the requirement of thetime period and information from one or more metadata sources; send tothe client application, by the server, a response with the optimal timeand information for downloading the file; receive from the client, bythe server, a request for downloading the file at the optimal time; andserve, by the server, at the optimal time, the file to the clientapplication.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagram illustrating a system for scheduling downloads basedon metadata in a client-server topology, in accordance with oneembodiment of the present invention.

FIG. 2 is a flowchart showing operational steps for scheduling downloadsbased on metadata in a client-server topology, in accordance with oneembodiment of the present invention.

FIG. 3 is a diagram illustrating components of a computer device of aclient or a server for scheduling downloads based on metadata in aclient-server topology, in accordance with one embodiment of the presentinvention.

DETAILED DESCRIPTION

Embodiments of the present invention use metadata sources to makeinformed decisions and present cost savings to clients whilst servingthe needs of the business and providing content that clients need. Forexample, scheduling downloads uses metadata about peak/off-peak timesfor client network traffic; in a case that the data is not neededimmediately (e.g. pre-loading a video), a download is scheduled at thetime when the download has minimal cost to the client. There is noconstraints on what metadata can be used to make the schedulingdecisions. The metadata is directly from the client and from metadatasources or metadata stores. What metadata will be used is defined by thebusiness. The embodiments of the present invention can be implemented indifferent systems, support programs, and runtime environments; forexample, a most likely common solution is REST (Representational StateTransfer) over HTTP (Hypertext Transfer Protocol) based API (ApplicationProgram Interface).

FIG. 1 is a diagram illustrating system 100 for scheduling downloadsbased on metadata in a client-server topology, in accordance with oneembodiment of the present invention. System 100 is a client-servertopology, comprising client application 101 and server 110. Server 110comprises download server 102, scheduler 103, file server 104, andmetadata sources 105.

Referring to FIG. 1, as denoted by {circle around (1)}, clientapplication 101 sends to download server 102 a request for scheduling adownload. The request for scheduling the download specifies a file thata client wants to download. The request for scheduling the downloadcomprises a requirement of a time period for downloading the file and alatest time point at which the file should be downloaded. The requestfor scheduling the download may include other information to informserver 110 such that server 110 can make a decision more in line withthe client wishes. The requirement of the time period for downloadingthe file and the other information included in the request forscheduling the download are metadata from the client side and will beused for making decision by server 110.

Referring to FIG. 1, as denoted by {circle around (2)}, in response toreceiving the request for scheduling the download from clientapplication 101, download server 102 fetches information (or metadata)from metadata sources 105 (or one or more metadata stores). Theinformation from metadata sources 105 comprises historical server loadstatistics, ISP (Internet service provider) data caps, peak/off-peaktimes for client network traffic, costs to the client, routing,bandwidth, and other needed information. For the current request,download server 102 fetches from metadata sources 105 information (ormetadata) which is relevant to the current request.

Referring to FIG. 1, as denoted by {circle around (3)}, download server102 forwards to scheduler 103 the request for scheduling the download ofthe file and the fetched information (or metadata). When the request isforwarded, all information included in the request, such as the timeperiod for downloading the file and the latest time point at which thefile should be downloaded, is forwarded to scheduler 103 by downloadserver 102.

Scheduler 103 determines an optimal time for downloading the file, basedon the information included in the request for scheduling the downloadof the file and the information (or metadata) fetched from metadatasources 105. Referring to FIG. 1, as denoted by {circle around (4)}, inresponse to determining the optimal time for downloading the file,scheduler 103 sends to download server 102 the optimal time fordownloading the file.

Referring to FIG. 1, as denoted by {circle around (5)}, download server102 sends to client application 101 a response with the optimal time fordownloading the file. In the response to client application 101,download server 102 provides client application 101 with information theclient needs or has been requested. The information includes thelocation of file server 104 and a token that authenticates the clientfor downloading the file at the optimal time.

Referring to FIG. 1, as denoted by {circle around (6)}, in response toreceiving the response from download server 102, client application 101sends a request for downloading the file at the optimal time and thetoken for authentication if required. Thus, downloading the file at theoptimal time is initiated by client application 101. After theinitiation, if the requirement of the time period for downloading thefile is changed, client application 101 may reschedule for downloadingthe file. After the initiation, if downloading the file is not neededanymore, client application 101 may cancel downloading the file at theoptimal time. As denoted {circle around (7)}, file server 104 serves thefile to client application 101 at the optimal time.

The token for authentication is used to provide a mapping between theclient request for scheduling the download of the file and the requestfor downloading the file at the optimal time. Thus, server 110 makessure the client makes the download request in line with what has beenagreed.

FIG. 2 is flowchart 200 showing operational steps for schedulingdownloads based on metadata in a client-server topology, in accordancewith one embodiment of the present invention. At step 201, clientapplication 101 sends to download server 102 a request for scheduling adownload of a file. The request specifies the file that the client wantsto downloaded. The request comprises a requirement of a time period fordownloading the file. The time period sets a time point at which thefile should be downloaded. The request also includes other informationfor server 110 to make a decision more in line with the client wishes.The requirement of the time period for downloading the file and theother information included in the request for scheduling the download ofthe file are metadata from the client side.

At step 202, in response to receiving from client application 101 therequest for scheduling the download of the file, download server 102fetches information (or metadata) from metadata sources 105. Metadatasources 105 store information including historical server loadstatistics, ISP (Internet service provider) data caps, peak/off-peaktimes for client network traffic, costs to the client, routing,bandwidth, and other needed information. Download server 102 fetchessome of the information (or metadata) specifically relevant to thecurrent request.

At step 203, download server 102 forwards to scheduler 103 the requestfor scheduling the download of the file and the fetched information (ormetadata) at step 202. The information included in the request forscheduling the download of the file, such as the time period fordownloading the file and the latest time point at which the file shouldbe downloaded, is forwarded to scheduler 103.

At step 204, scheduler 103 determines an optimal time for downloadingthe file, based on the information (e.g., requirement of the time periodfor downloading the file) included in the request sent at step 201 byclient application 101 and the information (or metadata) fetched frommetadata sources 105 at step 202. In response to determining the optimaltime for downloading the file, at step 205, scheduler 103 sends todownload server 102 the optimal time for downloading the file.

In response to receiving the optimal time determined by scheduler 103,at step 206, download server 102 sends client application 101 a responsewith the optimal time for downloading the file and information fordownloading the file. The information for downloading the file includes,for example, a location of file server 104 and a token forauthentication. The token for authentication is used to provide amapping between the client request for scheduling the download of thefile and a request for downloading the file at the optimal time. Therequest for downloading the file at the optimal time will be made byclient application 101 at the next step (step 207). Thus, server 110makes sure the client makes the download request in line with what hasbeen agreed.

In response to receiving a response from download server 102 at step206, client application 101, at step 207, sends download server 102 arequest for downloading the file at the optimal time and the token forthe authentication. Thus, downloading the file at the optimal time isinitiated by client application 101. If the requirement of the timeperiod for downloading the file is changed, client application 101 mayreschedule for downloading the file. If downloading the file is notneeded anymore, client application 101 may cancel downloading the fileat the optimal time.

If client application 101 does not reschedule or cancel the initiateddownload of the file at the optimal time, at step 208, file server 104serves the file to client application 101 at the optimal time which isdetermined at step 204.

FIG. 3 is a diagram illustrating components of computer device 300hosting client application 101 or server 110 for scheduling downloadsbased on metadata in a client-server topology, in accordance with oneembodiment of the present invention. It should be appreciated that FIG.3 provides only an illustration of one implementation and does not implyany limitations with regard to the environment in which differentembodiments may be implemented. The computer device may be anyelectronic device or computing system capable of receiving input from auser, executing computer program instructions, and communicating withanother electronic device or computing system via a network.

Referring to FIG. 3, computer device 300 includes processor(s) 320,memory 310, and tangible storage device(s) 330. In FIG. 3,communications among the above-mentioned components of computer device300 are denoted by numeral 390. Memory 310 includes ROM(s) (Read OnlyMemory) 311, RAM(s) (Random Access Memory) 313, and cache(s) 315. One ormore operating systems 331 and one or more computer programs 333 resideon one or more computer readable tangible storage device(s) 330. On aclient computer, client application 101 resides on one or more computerreadable tangible storage device(s) 330. On a server computer, downloadserver 102, scheduler 103, file server 104, and metadata sources 105reside one or more computer readable tangible storage device(s) 330.Alternatively, download server 102, scheduler 103, file server 104, ormetadata sources 105 may reside on a separate computer device connectedto the server computer via a network. Computer device 300 furtherincludes I/O interface(s) 350. I/O interface(s) 350 allows for input andoutput of data with external device(s) 360 that may be connected tocomputer device 300. Computer device 300 further includes networkinterface(s) 340 for communications between computer device 300 and acomputer network.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device, such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network(LAN), a wide area network (WAN), and/or a wireless network. The networkmay comprise copper transmission cables, optical transmission fibers,wireless transmission, routers, firewalls, switches, gateway computersand/or edge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++, and conventionalprocedural programming languages, such as the “C” programming language,or similar programming languages. The computer readable programinstructions may execute entirely on the user's computer, partly on theuser's computer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer, or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider). In some embodiments,electronic circuitry including, for example, programmable logiccircuitry, field-programmable gate arrays (FPGA), or programmable logicarrays (PLA) may execute the computer readable program instructions byutilizing state information of the computer readable programinstructions to personalize the electronic circuitry in order to performaspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture, including instructions which implement aspectsof the function/act specified in the flowchart and/or block diagramblock or blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus, or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the FIGS. illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the FIGS. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

What is claimed is:
 1. A method for scheduling downloads based onmetadata in a client-server topology, the method comprising: receivingfrom a client application, by a server, a request for scheduling adownload of a file, wherein the request for scheduling the download ofthe file comprises a requirement of a time period for downloading thefile; fetching, by the server, information from one or more metadatasources, wherein the information is relevant to the request forscheduling the download of the file; determining, by the server, anoptimal time for downloading the file, based on the requirement of thetime period and information from one or more metadata sources; sendingto the client application, by the server, a response with the optimaltime and information for downloading the file; receiving from theclient, by the server, a request for downloading the file at the optimaltime; receiving from the client application, by the server, a token forauthentication, wherein the token is used to provide mapping between therequest for scheduling the download of the file and the request fordownloading the file at the optimal time; and serving, by the server, atthe optimal time, the file to the client application.
 2. The method ofclaim 1, wherein the token is included in the information fordownloading the file.
 3. The method of claim 1, wherein the informationfrom one or more metadata resources comprises one or more of historicalserver load statistics, Internet service provider data caps, peak andoff-peak times for client network traffic, costs to the client, routing,and bandwidth.
 4. The method of claim 1, further comprising:rescheduling, by the client application, the download of the file, inresponse to the requirement of the time period being changed, after theclient application has sent to the server the request for downloadingthe file at the optimal time.
 5. The method of claim 1, furthercomprising: canceling, by the client application, the download of thefile, in response to the download of the file not being needed, afterthe client application has sent to the server the request fordownloading the file at the optimal time.
 6. A computer program productfor scheduling downloads based on metadata in a client-server topology,the computer program product comprising a computer readable storagemedium having program code embodied therewith, the program codeexecutable to: receive from a client application, by a server, a requestfor scheduling a download of a file, wherein the request for schedulingthe download of the file comprises a requirement of a time period fordownloading the file; fetch, by the server, information from one or moremetadata sources, wherein the information is relevant to the request forscheduling the download of the file; determine, by the server, anoptimal time for downloading the file, based on the requirement of thetime period and information from one or more metadata sources; send tothe client application, by the server, a response with the optimal timeand information for downloading the file; receive from the client, bythe server, a request for downloading the file at the optimal time;receive from the client application, by the server, a token forauthentication, wherein the token is used to provide mapping between therequest for scheduling the download of the file and the request fordownloading the file at the optimal time; and serve, by the server, atthe optimal time, the file to the client application.
 7. The computerprogram product of claim 6, wherein the token is included in theinformation for downloading the file.
 8. The computer program product ofclaim 6, wherein the information from one or more metadata resourcescomprises one or more of historical server load statistics, Internetservice provider data caps, peak and off-peak times for client networktraffic, costs to the client, routing, and bandwidth.
 9. The computerprogram product of claim 6, wherein the program code is furtherexecutable to: reschedule, by the client application, the download ofthe file, in response to the requirement of the time period beingchanged, after the client application has sent to the server the requestfor downloading the file at the optimal time.
 10. The computer programproduct of claim 6, wherein the program code is further executable to:cancel, by the client application, the download of the file, in responseto the download of the file not being needed, after the clientapplication has sent to the server the request for downloading the fileat the optimal time.
 11. A computer system for scheduling downloadsbased on metadata in a client-server topology, the computer systemcomprising: one or more processors, one or more computer readabletangible storage devices, and program instructions stored on at leastone of the one or more computer readable tangible storage devices forexecution by at least one of the one or more processors, the programinstructions executable to: receive from a client application, by aserver, a request for scheduling a download of a file, wherein therequest for scheduling the download of the file comprises a requirementof a time period for downloading the file; fetch, by the server,information from one or more metadata sources, wherein the informationis relevant to the request for scheduling the download of the file;determine, by the server, an optimal time for downloading the file,based on the requirement of the time period and information from one ormore metadata sources; send to the client application, by the server, aresponse with the optimal time and information for downloading the file;receive from the client, by the server, a request for downloading thefile at the optimal time; receive from the client application, by theserver, a token for authentication, wherein the token is used to providemapping between the request for scheduling the download of the file andthe request for downloading the file at the optimal time; and serve, bythe server, at the optimal time, the file to the client application. 12.The computer system of claim 11, wherein the token is included in theinformation for downloading the file.
 13. The computer system of claim11, wherein the information from one or more metadata resourcescomprises one or more of historical server load statistics, Internetservice provider data caps, peak and off-peak times for client networktraffic, costs to the client, routing, and bandwidth.
 14. The computersystem of claim 11, wherein the program instructions are furtherexecutable to: reschedule, by the client application, the download ofthe file, in response to the requirement of the time period beingchanged, after the client application has sent to the server the requestfor downloading the file at the optimal time.
 15. The computer system ofclaim 11, wherein the program instructions are further executable to:cancel, by the client application, the download of the file, in responseto the download of the file not being needed, after the clientapplication has sent to the server the request for downloading the fileat the optimal time.